package com.l024.easysecurity.modules.sys.dao;

import com.l024.easysecurity.common.page.PageParams;
import com.l024.easysecurity.modules.sys.entity.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysMenuMapper {
    /**
     * 查询管理员的所有权限
     */
    List<String> queryAdminAllPerms();

    /**
     * 获取用户所有的菜单权限
     */
    List<SysMenu> queryUserAllMenus(@Param("userId")long userId);

    /**
     * 获取所有权限菜单
     */
    List<SysMenu> queryAllMenus();

    /**
     * 分页获取权限菜单
     */
    List<SysMenu> selectPageSysMenu(@Param("sysMenu") SysMenu sysMenu, @Param("pageParams") PageParams pageParam);

    /**
     * 获取总条数
     */
    Long selectPageCount(@Param("sysMenu") SysMenu sysMenu);

    /**
     * 添加菜单
     */
    void addMenu(@Param("sysMenu")SysMenu sysMenu);

    /**
     * 删除菜单
     */
    void delMenu(@Param("menuId")Long menuId);

    /**
     * 根据条件判断是否存在
     */
    Long selectMenuIsExit(@Param("sysMenu")SysMenu sysMenu);

    /**
     * 更新菜单
     */
    void updateMenu(@Param("sysMenu")SysMenu sysMenu);

    /**
     * 判断菜单是否有角色绑定
     */
    long menuHaveRole(@Param("menuId")Long menuId);
}
